perm filename DTEST.PAS[AL,HE] blob sn#741778 filedate 1984-02-06 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	program dtest
C00005 ENDMK
C⊗;
program dtest;

type

vect = ARRAY[1..3] of real;
vect6 = ARRAY[1..6] of real;
trans = ARRAY[1..3,1..4] of real;

msgtypes = (initarmscmd,calibcmd,killarmscmd,wherecmd,
	    abortcmd,stopcmd,movehdrcmd,movesegcmd,
	    centercmd,operatecmd,movedonecmd,signalcmd,
	    setccmd,forcesigcmd,forceoffcmd,biasoncmd,biasoffcmd,setstiffcmd,
	    zerowristcmd,wristcmd,gathercmd,getgathercmd,readadccmd,writedaccmd,
	    errorcmd,floatcmd,setloadcmd,
	    armmagiccmd,realcmd,vectorcmd,transcmd);

errortypes = (noerror,noarmsol,timerr,durerr,toolong,featna,
	      unkmess,srvdead,adcdead,nozind,exjtfc,paslim,nopower,badpot,devbusy,
	      baddev,timout,panicb,nocart,cbound,badparm);

messagep = ↑message;

message = RECORD
	   next: messagep;
	   cmd: msgtypes;
	   ok: boolean;
	   dev, bits, n, evt1,evt2: integer;
           dur: real;
	   CASE integer OF
           1: (v: vect;
              CASE integer OF
	      1: (t: trans);
	      2: (v6: vect6);
	      3: (fv1,fv2,fv3,mv1,mv2,mv3: real));
	   2: (sfac,wobble,pos: real);
           3: (val,angle,mag: real);
           4: (max,min: real);
           5: (error: errortypes);
	  END;

var mes: messagep; i: integer; r: real; b: boolean;

begin
new(mes);
mes↑.next := nil;
mes↑.cmd := initarmscmd;
mes↑.cmd := transcmd;
mes↑.ok := TRUE;
mes↑.dev := 1;
mes↑.bits := 2;
mes↑.n := 3;
mes↑.evt1 := 4;
mes↑.evt2 := 5;
mes↑.dur := 1.01;
mes↑.v[1] := 2.0;
mes↑.v[3] := 4.2;
mes↑.t[1,1] := 1.1;
mes↑.t[3,1] := 3.1;
mes↑.t[1,4] := 1.4;
mes↑.t[3,4] := 3.4;
mes↑.v6[1] := 1.6;
mes↑.v6[6] := 6.6;
mes↑.fv1 := 1.1;
mes↑.mv3 := 6.1;
mes↑.sfac := 1.2;
mes↑.wobble := 2.2;
mes↑.pos := 3.2;
mes↑.error := noerror;
mes↑.error := badparm;
dispose(mes);
end.